package br.usp.icmc.biomac.client;

import java.util.ArrayList;

import br.usp.icmc.biomac.client.ClientFactoryImpl.RootWidget;
import br.usp.icmc.biomac.client.view.DicomResultCellBrowser;
import br.usp.icmc.biomac.client.view.DicomResultCellTable;
import br.usp.icmc.biomac.client.view.DicomSearchWidget;
import br.usp.icmc.biomac.client.view.ImageAnnotation;
import br.usp.icmc.biomac.client.view.ImageListView;
import br.usp.icmc.biomac.client.view.ImageView;
import br.usp.icmc.biomac.shared.ImageDicom;
import br.usp.icmc.biomac.shared.ROI;

import com.google.gwt.event.shared.EventBus;
import com.google.gwt.place.shared.PlaceController;

public interface ClientFactory
{
	EventBus getEventBus();
	PlaceController getPlaceController();
	// widgets
	ImageView getImageView();
	ImageListView getImageListView();
	DicomResultCellTable getDicomResultCellTable();
	DicomResultCellBrowser getDicomResultCellBrowser();
	ImageAnnotation getImageAnnotation();
	DicomSearchWidget getDicomSearchWidget();
	
	ArrayList<ImageDicom> getImageDicom();
	void setImageDicom(ArrayList<ImageDicom> imageDicoms);
	void addROIImageDicom(int indexImage, ROI roi);
	void rmvROIImageDicom(int indexImage, int indexROI);
	

	ImageView getImagePlaceView();
	ImageAnnotation getImageAnnotationPlace();
	
	Web_padServiceAsync getRpcService();
	RootWidget getRootWidget();
}
